Wireless communication devices have become ubiquitous. Devices such as wireless telephones include so-called mobile station modems (MSM) that essentially are wireless communication computers which, like all digital computers, execute software to undertake the functions desired by the user. Typically, a wireless communication device MSM includes a core processor that accesses random access memory (RAM) to store data, and flash memory to store software.
To achieve greater system robustness, flash memory devices have been introduced that can simultaneously read data and write data, and accordingly are referred to as read-while-write flash devices. To facilitate read-while-write, portions of such flash devices include a so-called code bank, in which the software driver of the flash memory device is stored and executed in cooperation with the MSM processor, and a data bank, in which various software code is stored. As an example, a wireless telephone may allow a user to download games into the data bank under control of the flash driver in the code bank.
Presently, once the data bank is full, no further data can be downloaded, even if spare space exists in the code bank. This is because the flash driver in the code bank cannot control flash memory operation, a condition necessary for storing data in the flash device, while data simultaneously is being written to its own dedicated code bank. Accordingly, since the bank sizes of read-while-write flash memory devices cannot be dynamically changed, the only way to provide the user with more flash memory space is to replace the existing flash memory with a higher capacity memory. This is time consuming and bothersome for the manufacturer since it requires a new revision of the phone hardware and concomitant regression testing.